package com.gsafety.wellsfort.domain.model.course;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;

/**
 * 描述:cls_course表的实体类
 *
 * @author: zhoutanxin
 * @创建时间: 2020-05-02
 */
public class Course implements Comparable<Course> {
    /**
     *
     */
    private Integer id;

    /**
     * 课程对象
     */
    private Integer objectType;

    /**
     * 课程名称
     */
    private String name;

    /**
     * 课程简介
     */
    private String introduction;

    /**
     * 课程图URL
     */
    private String imageUrl;

    /**
     * 缩略图URL
     */
    private String thumbnailUrl;

    /**
     * 0，线上，1，线下
     */
    private Byte teachingWay;

    /**
     * 上线时间
     */
    private Date attendClassTime;

    /**
     * 是否上线:1,是.0 否
     */
    private Integer isOnline;

    /**
     * 上线时间
     */
    private Date onlineTime;

    /**
     * 课程时长
     */
    private Integer duration;

    /**
     * 添加人
     */
    private Integer creator;

    /**
     * 添加时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date createTime;

    /**
     * 修改人
     */
    private Integer modified;
    /**
     * 课程发布范围
     */
    private Integer isPlatform;

    /**
     * 修改时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date updateTime;

    private String schoolName;

    private String className;

    private Integer studentNumber;

    /**
     * @return id
     */
    public Integer getId() {
        return id;
    }

    /**
     * @param id
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 课程对象
     *
     * @return object_type 课程对象
     */
    public Integer getObjectType() {
        return objectType;
    }

    /**
     * 课程对象
     *
     * @param objectType 课程对象
     */
    public void setObjectType(Integer objectType) {
        this.objectType = objectType;
    }

    /**
     * 课程名称
     *
     * @return name 课程名称
     */
    public String getName() {
        return name;
    }

    /**
     * 课程名称
     *
     * @param name 课程名称
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 课程简介
     *
     * @return introduction 课程简介
     */
    public String getIntroduction() {
        return introduction;
    }

    /**
     * 课程简介
     *
     * @param introduction 课程简介
     */
    public void setIntroduction(String introduction) {
        this.introduction = introduction;
    }

    /**
     * 课程图URL
     *
     * @return image_url 课程图URL
     */
    public String getImageUrl() {
        return imageUrl;
    }

    /**
     * 课程图URL
     *
     * @param imageUrl 课程图URL
     */
    public void setImageUrl(String imageUrl) {
        this.imageUrl = imageUrl;
    }

    /**
     * 缩略图URL
     *
     * @return thumbnail_url 缩略图URL
     */
    public String getThumbnailUrl() {
        return thumbnailUrl;
    }

    /**
     * 缩略图URL
     *
     * @param thumbnailUrl 缩略图URL
     */
    public void setThumbnailUrl(String thumbnailUrl) {
        this.thumbnailUrl = thumbnailUrl;
    }

    /**
     * 0，线上，1，线下
     *
     * @return teaching_way 0，线上，1，线下
     */
    public Byte getTeachingWay() {
        return teachingWay;
    }

    /**
     * 0，线上，1，线下
     *
     * @param teachingWay 0，线上，1，线下
     */
    public void setTeachingWay(Byte teachingWay) {
        this.teachingWay = teachingWay;
    }

    /**
     * 上线时间
     *
     * @return attend_class_time 上线时间
     */
    public Date getAttendClassTime() {
        return attendClassTime;
    }

    /**
     * 上线时间
     *
     * @param attendClassTime 上线时间
     */
    public void setAttendClassTime(Date attendClassTime) {
        this.attendClassTime = attendClassTime;
    }

    /**
     * 是否上线:1,是.0 否
     *
     * @return is_online 是否上线:1,是.0 否
     */
    public Integer getIsOnline() {
        return isOnline;
    }

    /**
     * 是否上线:1,是.0 否
     *
     * @param isOnline 是否上线:1,是.0 否
     */
    public void setIsOnline(Integer isOnline) {
        this.isOnline = isOnline;
    }

    /**
     * 上线时间
     *
     * @return online_time 上线时间
     */
    public Date getOnlineTime() {
        return onlineTime;
    }

    /**
     * 上线时间
     *
     * @param onlineTime 上线时间
     */
    public void setOnlineTime(Date onlineTime) {
        this.onlineTime = onlineTime;
    }

    /**
     * 课程时长
     *
     * @return duration 课程时长
     */
    public Integer getDuration() {
        return duration;
    }

    /**
     * 课程时长
     *
     * @param duration 课程时长
     */
    public void setDuration(Integer duration) {
        this.duration = duration;
    }

    /**
     * 添加人
     *
     * @return creator 添加人
     */
    public Integer getCreator() {
        return creator;
    }

    /**
     * 添加人
     *
     * @param creator 添加人
     */
    public void setCreator(Integer creator) {
        this.creator = creator;
    }

    /**
     * 添加时间
     *
     * @return create_time 添加时间
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 添加时间
     *
     * @param createTime 添加时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 修改人
     *
     * @return modified 修改人
     */
    public Integer getModified() {
        return modified;
    }

    /**
     * 修改人
     *
     * @param modified 修改人
     */
    public void setModified(Integer modified) {
        this.modified = modified;
    }

    /**
     * 修改时间
     *
     * @return update_time 修改时间
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 修改时间
     *
     * @param updateTime 修改时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Integer getIsPlatform() {
        return isPlatform;
    }

    public void setIsPlatform(Integer isPlatform) {
        this.isPlatform = isPlatform;
    }

    public String getSchoolName() {
        return schoolName;
    }

    public void setSchoolName(String schoolName) {
        this.schoolName = schoolName;
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    public Integer getStudentNumber() {
        return studentNumber;
    }

    public void setStudentNumber(Integer studentNumber) {
        this.studentNumber = studentNumber;
    }

    @Override
    public int compareTo(Course o) {
        if (this.getCreateTime() == null || o.getCreateTime() == null) {
            return 0;
        }
        return this.getCreateTime().compareTo(o.getCreateTime());
    }
}